/*
 * CompositeEquipment.h
 *
 *  Created on: Jan 21, 2013
 *      Author: quanpv
 */

#ifndef COMPOSITEEQUIPMENT_H_
#define COMPOSITEEQUIPMENT_H_

#include "Equipment.h"
#include "List.h"

class CompositeEquipment: public Equipment {
public:
	CompositeEquipment();
	virtual ~CompositeEquipment();

	virtual Watt Power();
	virtual Currency NetPrice();
	virtual Currency DiscountPrice();

	virtual void Add(boost::shared_ptr<Equipment>);
	virtual void Remove(boost::shared_ptr<Equipment>);
	virtual boost::shared_ptr<Iterator> CreateIterator();

protected:
	CompositeEquipment(boost::shared_ptr<const char>);

private:
	List _equipment;
};

#endif /* COMPOSITEEQUIPMENT_H_ */
